A license mechanism for software is generally known as meaning any mechanism for enforcing specific terms of a right to use agreement between an organization supplying the software and clients (the customers of the software). A simple example of these terms is a “trial” version of software, where a client can install and use the software for a limited time period or number of executions, after which they must purchase the software or stop using the software. Another possibility is a “demo” version of software, where the demo has some significant or critical features missing, but when purchased clients may use those features without restriction.
A known license mechanism involves having software locks for modules of the software, and a client can pay for activation codes at any time from the supplier, to enter into the software to release the locks and enable use of each module as required. An example is the SoftwareShield™ Licensing System available from SoftwareShield Technologies of Vancouver, British Columbia. This can also implement pay-per-use, where the client prepays for usage of specific program features; periodic expiry, where the client must pay a licensing fee every month to continue using the software; “poison-pill”, where no matter what happens—the software will cease to work after a specific date. The SoftwareShield License can hold up to 50 different Authorization Codes which can all do completely separate tasks allowing the supplier to effectively “remote-control” the software in different ways with a single license—and without redistributing a single file.
The licensing features configured by the supplier can be optionally hardware bound. This is a mechanism that essentially encodes a “FingerPrint” of the client computers into all Activation Request Codes sent by the client, and, in-turn, into Authorization Codes sent to the client. This ensures that even if the client were to give an illegal copy of the program to someone else, along with the Authorization Code, that code would not work on the other computer. A hardware-locked Authorization Code will only work on the exact computer that the client requested the code for.
SoftwareShield also provides a copy-protection mechanism that is a software/hardware locking mechanism that ensures that the software will not run on any system for which the license does not specifically authorize. This copy-protection mechanism is a FingerPrint locked system very similar to an Authorization Code described above. The primary difference between Copy Protection and other FingerPrint locked Authorization Codes is that Copy Protection provides some default handling if the system has not yet been authorized—prompting the customer if they want to release the copy protection now, linking them through their browser to a web-site where they can purchase it and providing a default Authorization Code input dialog for them. SoftwareShield (optionally) uses steganographic technology to conceal encrypted licence information inside image files.
A further development by Microsoft is known for use in personal computers, which involves storing an identification at registration time, of hardware used by software. If the software is then moved to run on other hardware, it may prevent use of the software if a given number of hardware changes are detected.
Another known technique is a software licence arrangement for LAN (Local Area Network) software. In this case a customer installs server software on a LAN server, and installs client software on each of a number of workstations. The software is licensed for a limited number of customers. The customer can plug in many workstations into the network, and log on to the network. When the server detects that the licensed number of workstations are logged on simultaneously, it is arranged to prevent further workstations from logging in.
However, such techniques are not used in the context of a multi-processor network element system which has automatic distribution of software from a shelf controller to individual customer replaceable cards plugged into a backplane of that shelf. Finger print techniques are not used because it is not practical to keep an up to date record of all the allowable combinations of card, backplane, software version for each customer. Each system can have a release of software having unique software for each of many different types of card.
However, if the cards are field replaceable, as they usually are, for maintenance purposes, this means a client can still obtain compatible third party cards and upgrade the software on them to the latest version, yet the supplier may be unaware and therefore unable to enforce the right to use agreement. It is often not practical to obtain specific authorization rapidly from the supplier each time a new card is plugged in because of the administrative burden on the supplier and the communications overhead involved.